1. Field of the Invention
Embodiments of the present invention relate generally to computer graphics and more specifically to techniques for projecting data maps.
2. Description of the Related Art
In computer graphics, a rendering engine typically renders a three-dimensional (3D) image or scene from one or more 3D “wire frame” model or “mesh” that a graphics artist or other user builds using graphics development software. Oftentimes, the rendering engine maps the content of a bitmap, such as a two-dimensional (2D) image file or texture map, onto the one or more 3D meshes to add desired “look and feel” details to the rendered 3D image or scene. For example, if a low-resolution 3D mesh is a cylinder, then the content of a 2D image file containing an image of tree bark may be mapped to the mesh to produce a 3D image that appears as a tree trunk. The user is required to create mapping coordinates that map the vertices of the mesh to the 2D image file that enable the content of the 2D image file to be applied correctly to the mesh.
When designing an image or scene, users typically prefer to use high-resolution 3D models to increase the level of detail of the rendered 3D image or scene. A high-resolution 3D model includes relatively more vertices, lines, polygons (e.g., triangles) and the like than a low-resolution 3D model, which enables higher resolution content to be mapped onto the high-resolution 3D model, resulting in a higher level of detail upon rendering. One drawback of building an image or scene using a high-resolution 3D model, however, is that a manual mapping between the vertices of the high-resolution 3D model and corresponding locations within a bitmap must be performed in order to map the content of the bitmap onto the high-resolution 3D model. Since, by definition, a high-resolution 3D model includes a relatively large number of vertices, the manual mapping process is tedious and time consuming. High-resolution 3D models also have mapping coordinates of higher complexity, further complicating the manual mapping process. In addition, once the manual mapping is completed, no changes to the high-resolution 3D model (e.g. repositioning or reshaping a polygon or adding a polygon) can be made unless the manual mapping is updated to accommodate the changes. Other drawbacks to using high-resolution 3D models are that more work is created for users because, for example, the users have to design the 3D image or scene with a relatively larger number of polygons, and system performance is degraded because manipulating 3D models with more data requires more processing power.
As the foregoing illustrates, what is needed in the art is a way to map the content of a bitmap to a 3D model that enables users to design a 3D image or scene using low-resolution 3D models, instead of high-resolution 3D models, without substantially degrading the quality of the rendered 3D image or scene, and decreases the difficulty of updating the mapping coordinates if the 3D models making up the 3D image or scene are modified.